`timescale 1ns / 1ps

/////////////////////////////////////////////////////////////////////////////
////                                                                     ////
//// Instituto Tecnologico de Costa Rica                                 ////
////                                                                     ////
//// Test bench de la maquina de estados finitos mayor                   ////
////                                                                     ////
//// Este archivo es parte del proyecto: Pong Game                       ////
//// http://repositorio-charmander.googlecode.com/svn/trunk/             ////
////                                                                     ////
//// Descripcion                                                         ////
//// Implementacion de unjuego de Pong como un proyecto                  ////
//// del curso de Taller de Diseño Digital.                             ////
////                                                                     ////
//// Funcionamiento:                                                     ////
//// - Modulo Test Bench de la FSM mayor                                 ////
////                                                                     ////                                    
//// Autores:                                                            ////
//// - Gia Chen, kathya0812@gmail.com                                    ////
////   Edgar Rojas, edtec217@gmail.com                                   ////
////                                                                     ////
/////////////////////////////////////////////////////////////////////////////


module major_FSM_tb;

	// Inputs
	reg _clk_i;
	reg _sync_rst_i;
	reg _sync_up_i;
	reg _sync_down_i;
	reg inicia_i;
	reg pierde_i;

	// Outputs
	wire [9:0] posicion_paleta_o;
	wire inicia_fsm_minor_o;
	wire fin_juego_o;

	// Instantiate the Unit Under Test (UUT)
	major_FSM uut (
		._clk_i(_clk_i), 
		._sync_rst_i(_sync_rst_i), 
		._sync_up_i(_sync_up_i), 
		._sync_down_i(_sync_down_i), 
		.inicia_i(inicia_i), 
		.pierde_i(pierde_i), 
		.posicion_paleta_o(posicion_paleta_o), 
		.inicia_fsm_minor_o(inicia_fsm_minor_o), 
		.fin_juego_o(fin_juego_o)
	);
	
	//Instanciacion del clock
	initial begin
	_clk_i = 0;
	forever begin
	_clk_i = ~_clk_i;
	#50;
	end
	end

	initial begin
		// Initialize Inputs
		_clk_i = 0;
		_sync_rst_i = 0;
		_sync_up_i = 0;
		_sync_down_i = 0;
		inicia_i = 0;
		pierde_i = 0;

		// Wait 100 ns for global reset to finish
		#200;
        
		// Add stimulus here
		_sync_rst_i =1;
		#60
		_sync_rst_i =0;
		inicia_i =1;
		#60
		pierde_i =1;
	end
      
endmodule

